/* eslint-disable */

import { AxiosRequestConfig } from 'axios';
import { request } from '../../utils/request';

export interface PostConfAutoCopyrightBatchAddAndUpdateRes {
  code: string; // 返回编码
  msg: string; // 返回消息
  data: {};
  traceId: string;
}

/**
 * 批量上传 新增 && 编辑
 */
export async function postConfAutoCopyrightBatchAddAndUpdate(
  data?: any,
  config?: AxiosRequestConfig,
): Promise<PostConfAutoCopyrightBatchAddAndUpdateRes> {
  return request(data, {
    url: '/confAutoCopyrightBatch/addAndUpdate',
    method: 'post',
    ...config,
  });
}

export interface PostConfAutoCopyrightBatchPageRes {
  code: string; // 返回编码
  msg: string; // 返回消息
  data: {
    current: number;
    pageSize: number;
    total: number;
    list: Array<{
      id: number; // 流水ID
      fileName: string; // 文件名
      fileUrl: string; // 文件服务器的文件路径（完整URL）
      remarks: string; // 备注
      taskType: number; // 定时版权：taskType  歌曲： 歌曲录音版权新增 - 10 歌曲录音版权修改 - 1 歌曲录音版权删除 - 11 歌曲词曲版权新增 - 18 歌曲词曲版权修改 - 2 歌曲词曲版权删除 - 3  视频： 视频版权新增 - 12 视频版权修改 - 4 视频录音版权删除 - 13  伴奏： 伴奏录音版权新增 - 14 伴奏录音版权修改 - 5 伴奏录音版权删除 - 15 伴奏词曲版权新增 - 19 伴奏词曲版权修改 - 6 伴奏词曲版权删除 - 7  长音频： 长音频录音版权新增 - 16 长音频录音版权修改 - 8 长音频录音版权删除 - 17 长音频词曲版权新增 - 20 长音频词曲版权修改 - 9 长音频词曲版权删除 - 21  长音频专辑： 长音频专辑录音版权新增 - 22 长音频专辑录音版权修改 - 23 长音频专辑录音版权删除 - 24 长音频专辑词曲版权新增 - 25 长音频专辑词曲版权修改 - 26 长音频专辑词曲版权删除 - 27  公司： 公司信息修改 - 28 合同信息修改 - 29
      operator: string; // 操作人
      status: number; // 执行状态
      valid: number; // 是否生效
      insertTime: string; // 插入时间
      modifyTime: string; // 修改时间
      fLines: number; // Excel批量配置的记录行数
    }>;
  };
  traceId: string;
}

/**
 * 批量上传 分页查询
 */
export async function postConfAutoCopyrightBatchPage(
  data?: any,
  config?: AxiosRequestConfig,
): Promise<PostConfAutoCopyrightBatchPageRes> {
  return request(data, {
    url: '/confAutoCopyrightBatch/page',
    method: 'post',
    ...config,
  });
}

export interface GetConfAutoCopyrightBatchBatchIdRes {
  code: string; // 返回编码
  msg: string; // 返回消息
  data: {
    id: number; // 流水ID
    fileName: string; // 文件名
    fileUrl: string; // 文件服务器的文件路径（完整URL）
    remarks: string; // 备注
    taskType: number; // 定时版权：taskType  歌曲： 歌曲录音版权新增 - 10 歌曲录音版权修改 - 1 歌曲录音版权删除 - 11 歌曲词曲版权新增 - 18 歌曲词曲版权修改 - 2 歌曲词曲版权删除 - 3  视频： 视频版权新增 - 12 视频版权修改 - 4 视频录音版权删除 - 13  伴奏： 伴奏录音版权新增 - 14 伴奏录音版权修改 - 5 伴奏录音版权删除 - 15 伴奏词曲版权新增 - 19 伴奏词曲版权修改 - 6 伴奏词曲版权删除 - 7  长音频： 长音频录音版权新增 - 16 长音频录音版权修改 - 8 长音频录音版权删除 - 17 长音频词曲版权新增 - 20 长音频词曲版权修改 - 9 长音频词曲版权删除 - 21  长音频专辑： 长音频专辑录音版权新增 - 22 长音频专辑录音版权修改 - 23 长音频专辑录音版权删除 - 24 长音频专辑词曲版权新增 - 25 长音频专辑词曲版权修改 - 26 长音频专辑词曲版权删除 - 27  公司： 公司信息修改 - 28 合同信息修改 - 29
    operator: string; // 操作人
    status: number; // 执行状态
    valid: number; // 是否生效
    insertTime: string; // 插入时间
    modifyTime: string; // 修改时间
    fLines: number; // Excel批量配置的记录行数
  };
  traceId: string;
}

/**
 * 获取批量上传策略详情
 */
export async function getConfAutoCopyrightBatchBatchId(
  batchId: string | number,
  data?: any,
  config?: AxiosRequestConfig,
): Promise<GetConfAutoCopyrightBatchBatchIdRes> {
  return request(data, {
    url: `/confAutoCopyrightBatch/${batchId}`,
    method: 'get',
    ...config,
  });
}

export interface PostConfAutoCopyrightBatchAddAndUpdateDetailRes {
  code: string; // 返回编码
  msg: string; // 返回消息
  data: {};
  traceId: string;
}

/**
 * 配置明细 新增 && 编辑
 */
export async function postConfAutoCopyrightBatchAddAndUpdateDetail(
  data?: any,
  config?: AxiosRequestConfig,
): Promise<PostConfAutoCopyrightBatchAddAndUpdateDetailRes> {
  return request(data, {
    url: '/confAutoCopyrightBatch/addAndUpdateDetail',
    method: 'post',
    ...config,
  });
}

export interface PostConfAutoCopyrightBatchPageDetailRes {
  code: string; // 返回编码
  msg: string; // 返回消息
  data: {
    current: number;
    pageSize: number;
    total: number;
    list: Array<{
      id: number; // 流水ID
      remarks: string; // 备注
      taskType: number; // 处理类型
      operator: string; // 操作人
      status: number; // 执行状态
      valid: number; // 是否生效
      insertTime: string; // 插入时间
      modifyTime: string; // 修改时间
      contentId: number; // 内容ID 原Python代码用trackId标识，现统一替换用contentId
      oldCpStatus: number; // 原版权状态
      oldCpCompanyId: number; // 原版权公司ID
      oldCopyrightId: number; // 原关联合同ID
      oldIsOnly: number; // 原是否独家
      oldAuthProduct: string; // 原授权产品
      copyrightFrom: string; // 权利开始时间
      copyrightTo: string; // 权利结束时间
      cpRemarks: string; // 版权备注
      cpDefect: number; // 版权瑕疵
      cpSource: number; // 版权来源
      needSync: number; // 同步合同信息
      wordNumber: string; // 词编码
      musicNumber: string; // 曲编码
      licenseValid: number; // 符合维权条件
      canCover: number; // 是否可翻唱
      musicCpPercent: number; // 配乐著作权份额
      wordCpPercent: number; // 文字著作权份额
      oldCpPercent: number;
      oldMusicCpPercent: number;
      oldWordCpPercent: number;
      excuteTime: string; // 定时设置时间
      originCpCompanyId: number; // 原始版权公司ID
      cpCompanyId: number; // 版权公司ID
      cpStatus: number; // 版权状态
      copyrightId: number; // 关联合同ID
      isOnly: number; // 是否独家
      isAgent: number; // 是否代理
      authProduct: string; // 授权产品
      copyrightArea: string; // 授权区域
      authType: number; // 版权类型
      cpPercent: number; // 版权份额
      linkId: number; // 批量配置ID
      excuteResult: string; // 执行结果
      companyName: string; // 公司名
      cpMain: string; // 签约公司主体
      type: number; // 公司类型
      contract: string; // 合同编号
      attr: string; // 合约属性
      authorizer: string; // 授权方
      businessBroker: string; // 商务对接人
      overseaStatus: number; // 海外漫游标记
      isAllSongbank: number; // 是否全曲库
      canAuth: number; // 是否可转授权
      canLegalRights: number; // 是否可维权
      canClip: number; // 是否可剪辑
      companyType: number; // 歌曲公司类型
      authPostponed: number; // 授权时间顺延
      isOverseaOnly: number; // 海外总代理
      overseaType: number; // 海外曲库类型
      authPlatform: string; // 授权平台
      authTerminal: string; // 授权终端
      authForm: string; // 授权形式
      cooFactory: string; // 硬件产商合作
      otherRight: string; // 其他权利
      network: string; // 传播网络
      excludePlatform: string; // 排除平台
      otherLimit: string; // 其他限制
      cpDiffusionSource: string; // 版权扩散来源
      noLink: number; // 是否禁止\限制链接
      isOnlyRemarks: string; // 是否总代理备注
      canLegalRightsRemarks: string; // 是否可维权备注
      canAuthRemarks: string; // 是否可转授权备注
      authProductRemarks: string; // 授权产品备注
      authTerminalRemarks: string; // 授权终端备注
      authFormRemarks: string; // 授权形式备注
      cooFactoryRemarks: string; // 硬件厂商合作备注
      copyrightAreaRemarks: string; // 授权区域备注
      networkRemarks: string; // 传播网络备注
      excludePlatformRemarks: string; // 排除平台备注
      canCoverRemarks: string; // 是否可翻唱备注
      otherRightRemarks: string; // 其它权利备注
      contentAttr: number;
    }>;
  };
  traceId: string;
}

/**
 * 配置明细 分页查询
 */
export async function postConfAutoCopyrightBatchPageDetail(
  data?: any,
  config?: AxiosRequestConfig,
): Promise<PostConfAutoCopyrightBatchPageDetailRes> {
  return request(data, {
    url: '/confAutoCopyrightBatch/pageDetail',
    method: 'post',
    ...config,
  });
}

export interface GetConfAutoCopyrightBatchDetailIdRes {
  code: string; // 返回编码
  msg: string; // 返回消息
  data: {
    id: number; // 流水ID
    remarks: string; // 备注
    taskType: number; // 处理类型
    operator: string; // 操作人
    status: number; // 执行状态
    valid: number; // 是否生效
    insertTime: string; // 插入时间
    modifyTime: string; // 修改时间
    contentId: number; // 内容ID 原Python代码用trackId标识，现统一替换用contentId
    oldCpStatus: number; // 原版权状态
    oldCpCompanyId: number; // 原版权公司ID
    oldCopyrightId: number; // 原关联合同ID
    oldIsOnly: number; // 原是否独家
    oldAuthProduct: string; // 原授权产品
    copyrightFrom: string; // 权利开始时间
    copyrightTo: string; // 权利结束时间
    cpRemarks: string; // 版权备注
    cpDefect: number; // 版权瑕疵
    cpSource: number; // 版权来源
    needSync: number; // 同步合同信息
    wordNumber: string; // 词编码
    musicNumber: string; // 曲编码
    licenseValid: number; // 符合维权条件
    canCover: number; // 是否可翻唱
    musicCpPercent: number; // 配乐著作权份额
    wordCpPercent: number; // 文字著作权份额
    oldCpPercent: number;
    oldMusicCpPercent: number;
    oldWordCpPercent: number;
    excuteTime: string; // 定时设置时间
    originCpCompanyId: number; // 原始版权公司ID
    cpCompanyId: number; // 版权公司ID
    cpStatus: number; // 版权状态
    copyrightId: number; // 关联合同ID
    isOnly: number; // 是否独家
    isAgent: number; // 是否代理
    authProduct: string; // 授权产品
    copyrightArea: string; // 授权区域
    authType: number; // 版权类型
    cpPercent: number; // 版权份额
    linkId: number; // 批量配置ID
    excuteResult: string; // 执行结果
    companyName: string; // 公司名
    cpMain: string; // 签约公司主体
    type: number; // 公司类型
    contract: string; // 合同编号
    attr: string; // 合约属性
    authorizer: string; // 授权方
    businessBroker: string; // 商务对接人
    overseaStatus: number; // 海外漫游标记
    isAllSongbank: number; // 是否全曲库
    canAuth: number; // 是否可转授权
    canLegalRights: number; // 是否可维权
    canClip: number; // 是否可剪辑
    companyType: number; // 歌曲公司类型
    authPostponed: number; // 授权时间顺延
    isOverseaOnly: number; // 海外总代理
    overseaType: number; // 海外曲库类型
    authPlatform: string; // 授权平台
    authTerminal: string; // 授权终端
    authForm: string; // 授权形式
    cooFactory: string; // 硬件产商合作
    otherRight: string; // 其他权利
    network: string; // 传播网络
    excludePlatform: string; // 排除平台
    otherLimit: string; // 其他限制
    cpDiffusionSource: string; // 版权扩散来源
    noLink: number; // 是否禁止\限制链接
    isOnlyRemarks: string; // 是否总代理备注
    canLegalRightsRemarks: string; // 是否可维权备注
    canAuthRemarks: string; // 是否可转授权备注
    authProductRemarks: string; // 授权产品备注
    authTerminalRemarks: string; // 授权终端备注
    authFormRemarks: string; // 授权形式备注
    cooFactoryRemarks: string; // 硬件厂商合作备注
    copyrightAreaRemarks: string; // 授权区域备注
    networkRemarks: string; // 传播网络备注
    excludePlatformRemarks: string; // 排除平台备注
    canCoverRemarks: string; // 是否可翻唱备注
    otherRightRemarks: string; // 其它权利备注
    contentAttr: number;
  };
  traceId: string;
}

/**
 * 获取配置明细详情
 */
export async function getConfAutoCopyrightBatchDetailId(
  detailId: string | number,
  data?: any,
  config?: AxiosRequestConfig,
): Promise<GetConfAutoCopyrightBatchDetailIdRes> {
  return request(data, {
    url: `/confAutoCopyrightBatch/${detailId}`,
    method: 'get',
    ...config,
  });
}
